﻿#define  _CRT_SECURE_NO_WARNINGS 1
//
//#include <stdio.h>
//int i;   //全局变量
//void prt()
//{
//	for (i = 5; i < 8; i++)
//		printf("%c", '*');
//	printf("\t");
//}
//
//int main()
//{
//	for (i = 5; i <= 8; i++)
//		prt();
//	return 0;
//}


//
// int main()
//{
//	int a = 3;
//	printf("%d\n", (a += a -= a * a)); //  -12 从右往左计算
//	return 0;
//}

//记负均正
//首先输入要输入的整数个数n，然后输入n个整数。输出为n个整数中负数的个数，和所有正整数的平均值，结果保留一位小数。
//0即不是正整数，也不是负数，不计入计算。如果没有正数，则平均值为0。

//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int  sum = 0;
//	int count1 = 0;
//	int count2 = 0;
//	int i = 0;
//	int num = 0;
//	for (i = 0; i < n; i++)
//	{
//		scanf("%d", &num);
//		if (num < 0)
//			count1++;
//		else if (num == 0)
//			count2++;
//		else
//			sum += num;
//	}
//	double result = (sum * 1.0 )/ (n - count1 - count2);
//	if (count1 + count2 == n)
//		printf("%d %.1lf", count1, 0.0);
//	else
//		printf("%d %.1lf",count1,result);
//	return 0;
//}
 
//旋转数组的最小数字     二分法变形 局部有序
//有一个长度为 n 的非降序数组，比如[1, 2, 3, 4, 5]，将它进行旋转，即把一个数组最开始的若干个元素搬到数组的末尾，变成一个旋转数组，
//比如变成了[3, 4, 5, 1, 2]，或者[4, 5, 1, 2, 3]这样的。请问，给定这样一个旋转数组，求数组中的最小值。
//
//int minNumberInRotateArray(int* rotateArray, int rotateArrayLen) {
//    int left = 0;
//    int right = rotateArrayLen - 1;
//    while (left < right)
//    {
//        int mid = left + (right - left) / 2;
//        if (rotateArray[mid] > rotateArray[right])
//        {
//            left = mid + 1;
//        }
//        else if (rotateArray[mid] < rotateArray[right])
//        {
//            right = mid;
//        }
//        else
//            right--;
//    }
//    return rotateArray[left];
//}

//#include<stdio.h>
// int main()
//{
//	int m, n;
//	printf("Enter m,n;");
//	scanf("%d%d", &m, &n);
//	while (m != n) //1
//	{
//		while (m > n) m = m - n; //2
//		while (n > m) n = n - m; //3
//	}
//	printf("m=%d\n", m);
//	return 0;
//}


//
//#include <stdio.h>
//int main()
// {
//	 char c;
//	 int v3 = 0, v1 = 0, v2 = 0;
//		 do
//		 {
//			 switch (c = getchar())
//			 {
//			 case'a':case'A':
//			 case'e':case'E':
//			 case'i':case'I':
//			 case'o':case'O':
//			 case'u':case'U':v1 += 1;
//			 default: v3 += 1;
//			 v2 += 1;
//			 }
//		 } while (c != '\n');
//		 printf("v3=%d,v1=%d,v2=%d\n", v3, v1, v2);      //12 4 12  不存在break，会顺序执行 do while循环也会判断\n
//		 return 0;
// }

//#include<stdio.h>
//int main()
//{
//	int i, j, n=10;
//	int count = 0;
//	for (i = 0; i <= n - 1; i++)
//	{
//		for (j = n; j > i; j--)
//		{
//			count++;
//		}
//	}
//	printf("%d", count);
//	return 0;
//}

//错误的集合
//集合 s 包含从 1 到 n 的整数。不幸的是，因为数据错误，导致集合里面某一个数字复制了成了集合里面的另外一个数字的值，导致集合 丢失了一个数字 并且 有一个数字重复 。
//给定一个数组 nums 代表了集合 S 发生错误后的结果。
//请你找出重复出现的整数，再找到丢失的整数，将它们以数组的形式返回。
//来源：力扣（LeetCode）
//int cmp_int(const void* a, const void* b)
//{
//    return *(int*)a - *(int*)b;
//}
//int* findErrorNums(int* nums, int numsSize, int* returnSize) {
//    int i = 0;
//    int* arr = (int*)malloc(sizeof(int) * 2);
//    *returnSize = 2;
//    qsort(nums, numsSize, sizeof(int), cmp_int);
//    int prev = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        int curr = nums[i];
//        if (curr == prev)
//        {
//            arr[0] = curr;
//        }
//        else if (curr - prev > 1)
//        {
//            arr[1] = prev + 1;
//        }
//        prev = curr;
//    }
//    if (nums[numsSize - 1] != numsSize)
//    {
//        arr[1] = numsSize;
//    }
//    return arr;
//}

//密码检查
//#include<stdio.h>
//#include<string.h>
//#include<ctype.h>  //isdigit()数字字符，islower()小写字母，isupper()大写字母，isalnum()数字和字母
//int check_password(char arr[])
//{
//	int len = strlen(arr);
//	if (len < 8)
//		return 0;
//	int i = 0;
//	int a1 = 0, a2 = 0, a3 = 0;
//	if (isdigit(arr[0])||(!isalnum(arr[0])))
//		return 0;
//	for(i = 0; i < len; i++)
//	{
//		if (isdigit(arr[i]))
//			a1 = 1;
//		else if (islower(arr[i]))
//			a2 = 1;
//		else if (isupper(arr[i]))
//			a3 = 1;
//		else
//			return 0;
//	}
//	if (a1 + a2 + a3 >= 2)
//	{
//		return 1;
//	}
//	return 0;
//}
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int i = 0;
//	char arr[101] = { 0 };
//	for (i = 0; i < n; i++)
//	{
//		scanf("%s", arr);
//		if (check_password(arr))
//			printf("YES");
//		else
//			printf("NO");
//		printf("\n");
//	}
//	return 0;
//}